Processing environments can support different types of processes, including asynchronous processes and synchronous processes. An asynchronous process is a process that operates independently of other processes. In contrast, a synchronous process is a process that typically depends on another process. For example, a synchronous process expecting a response from another process will not proceed until it receives the response.
Asynchronous processes, including those executed in a virtual environment by guests managed by a host, sometimes require access to buffers in storage (also referred to as memory; storage and memory are used interchangeably herein). If the required buffer is large, it is disadvantageous, and at times, impossible or impractical, to allocate the entire buffer in host real storage. Thus, the buffer is allocated in blocks of real host storage, requiring careful management of the buffer. Such management tends to be difficult, especially when the large storage buffer is a guest storage buffer used by an asynchronous process. This is because certain exceptions, such as dynamic address translation faults, are not tolerated by such processes.